package com.ruoyi.system.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 用于存储用户之间的消息记录对象 ac_message
 *
 * @author wangxu19
 * @date 2025-03-24
 */
public class AcMessage extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 消息ID，主键，自增 */
    private String id;

    /** 发件人ID，标识消息的发送者 */
    @Excel(name = "发件人ID，标识消息的发送者")
    private String senderId;

    private String senderName;

    /** 发送时间，记录消息发送的具体时间 */
    @Excel(name = "发送时间，记录消息发送的具体时间")
    private String sendTime;

    /** 消息类型 */
    @Excel(name = "消息类型")
    private String messageType;

    /** 消息内容，存储消息的具体内容 */
    @Excel(name = "消息内容，存储消息的具体内容")
    private String content;

    /** 已读标识，0表示未读，1表示已读 */
    @Excel(name = "已读标识，0表示未读，1表示已读")
    private String isRead;

    /** 资产ID，关联消息相关的资产 */
    @Excel(name = "资产ID，关联消息相关的资产")
    private String assetId;

    /** 工单详情，存储与消息相关的工单信息 */
    @Excel(name = "工单详情，存储与消息相关的工单信息")
    private String orderDetail;

    /** 备用字段，用于存储其他可能的信息 */
    @Excel(name = "备用字段，用于存储其他可能的信息")
    private String reservedField;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 部门ID */
    @Excel(name = "部门ID")
    private Long deptId;

    public String getSenderName() {
        return senderName;
    }

    public void setSenderName(String senderName) {
        this.senderName = senderName;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getId()
    {
        return id;
    }
    public void setSenderId(String senderId)
    {
        this.senderId = senderId;
    }

    public String getSenderId()
    {
        return senderId;
    }
    public void setSendTime(String sendTime)
    {
        this.sendTime = sendTime;
    }

    public String getSendTime()
    {
        return sendTime;
    }
    public void setMessageType(String messageType)
    {
        this.messageType = messageType;
    }

    public String getMessageType()
    {
        return messageType;
    }
    public void setContent(String content)
    {
        this.content = content;
    }

    public String getContent()
    {
        return content;
    }
    public void setIsRead(String isRead)
    {
        this.isRead = isRead;
    }

    public String getIsRead()
    {
        return isRead;
    }
    public void setAssetId(String assetId)
    {
        this.assetId = assetId;
    }

    public String getAssetId()
    {
        return assetId;
    }
    public void setOrderDetail(String orderDetail)
    {
        this.orderDetail = orderDetail;
    }

    public String getOrderDetail()
    {
        return orderDetail;
    }
    public void setReservedField(String reservedField)
    {
        this.reservedField = reservedField;
    }

    public String getReservedField()
    {
        return reservedField;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("senderId", getSenderId())
            .append("sendTime", getSendTime())
            .append("messageType", getMessageType())
            .append("content", getContent())
            .append("isRead", getIsRead())
            .append("assetId", getAssetId())
            .append("orderDetail", getOrderDetail())
            .append("reservedField", getReservedField())
            .append("delFlag", getDelFlag())
            .append("deptId", getDeptId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
